Skip to content

Shared: convert data extensions to JSON - #23060

Merged
nickrolfe merged 1 commit into
mainfrom
nickrolfe/json-data-extensions-shared
Nov 10, 2026
Merged

nickrolfe merged 1 commit into
mainfrom
nickrolfe/json-data-extensions-shared

Conversation

@nickrolfe

Copy link
Copy Markdown
Contributor

CodeQL CLI 2.27.3 supports JSON data extensions (aka MaD models), and can load them significantly faster than YAML. This PR converts those in the shared packs.

To verify successful conversion, I cherry-picked this commit onto #23059, which has a temporary test that enumerates all tuples from data extensions. The test still passes after conversion.

@nickrolfe
nickrolfe marked this pull request as ready for review November 9, 2026 16:33
@nickrolfe
nickrolfe requested a review from a team as a code owner November 9, 2026 16:33
Copilot AI auto review requested due to automatic review settings November 9, 2026 16:33

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The conversion is represented across the manifests and replacement JSON extensions, with review identifying only non-blocking documentation-link nits.

No open issues 🎉

What changed in this PR

Converts the shared CodeQL utility and threat-model data extensions from YAML to JSON for faster loading in CodeQL CLI 2.27.3 while preserving the existing extension data.

Changes:

  • Registers JSON data extensions in the shared utility and threat-model pack manifests.
  • Replaces the default alert-filter YAML extension with JSON.
  • Replaces the threat-model grouping and supported-threat-model YAML extensions with JSON equivalents.
File Summary Review comments
shared/​util/​qlpack.yml Registers JSON utility data extensions. —
shared/​util/​ext/​default-alert-filter.yml Removes the former YAML alert-filter extension. —
shared/​util/​ext/​default-alert-filter.json Provides the alert-filter extension in JSON format. —
shared/​threat-models/​qlpack.yml Registers JSON threat-model data extensions. Nit (1 vote): Update five source comments that still link to the deleted threat-model-grouping.model.yml path, including locations in the Rust, JavaScript, and Python Concepts.qll files.
shared/​threat-models/​ext/​threat-model-grouping.model.yml Removes the former YAML threat-model grouping extension. —
shared/​threat-models/​ext/​threat-model-grouping.model.json Provides threat-model groupings in JSON format. Nit (1 vote): Update the public Concepts.qll documentation links in the Python, JavaScript, and Rust libraries to reference the JSON path or otherwise preserve valid links.
shared/​threat-models/​ext/​supported-threat-models.model.yml Removes the former YAML supported-model configuration. —
shared/​threat-models/​ext/​supported-threat-models.model.json Provides the supported-model configuration in JSON format. —

Review effort: Lite (auto)

@nickrolfe
nickrolfe merged commit a219774 into main Nov 10, 2026
86 of 87 checks passed
@nickrolfe
nickrolfe deleted the nickrolfe/json-data-extensions-shared branch November 10, 2026 12:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants